#pragma once

#include <view/viewgroup.h>
#include <widget/textview.h>
#include <widget/imageview.h>
#include "time_textview.h"
#include "tuya_conn_mgr.h"
#include "comm_func.h"
#include "R.h"

typedef enum
{
    PAGE_NONE = -1,         // 无界面
    PAGE_HOME = 0,          // 主界面
    PAGE_MODE1,             // 模式选择 1 界面
    PAGE_MODE2,             // 模式选择 2 界面
    PAGE_ZHENGKAO_SETTING,  // 蒸烤参数设置界面
    PAGE_WATER_MODE,        // 出水模式管理
    PAGE_WATER_MODE_ADD,    // 新增出水模式
    PAGE_WATER_MODE_MODIFY,    // 修改出水模式
    PAGE_WATER_MODE_DELETE, // 确认删除出水模式弹窗
    PAGE_SETTING,           // 页面设置

} pageType;

class PageBase
{

public:
    PageBase();
    PageBase(ViewGroup *dPageBox, const std::string resource, int pageType);
    virtual ~PageBase();
    void addPage();
    void removePage();
    ViewGroup *getDPagLeayout()
    {
        return dPageLayout;
    };
    int getDPageType(){return dPageType;};
    virtual void startPageAction(pageType type, int position = -1);
    virtual void stopPageAction();
    virtual void callMsg(int type, void* data);

protected:
    ViewGroup *dPageBox;
    ViewGroup *dPageLayout;
    int dPageType;

    // TITLE_LEFT
    TimeTextView *dTitleLeftClock; // 时间
    // TextView *dTitleLeftClock;
    ImageView *dTitleLeftWifi;    // Wifi
    ImageView *dTitleLeftSock;    // 童锁
    ImageView *dTitleLeftLight;   // 照明
    ImageView *dTitleLeftSetting; // 设置

    virtual void onMsg(int type, void *data);

private:
    Runnable myTicker;
    int myTickerTime;
    void initPageBase(const std::string resource);
    void onTicker();
};